package com.zmn.plat.common.dictionary;

import com.zmn.common.dictionary.DictModel;
import com.zmn.plat.common.constant.CompanyConsts;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * @author tanbiao
 * @description
 * @since 2019/10/30 11:47
 * @modifier
 **/
public class CompanyDict {
    /**
     * 组织架构类型集合
     */
    private static final List<DictModel> ORG_TYPE_LIST_ITEMS = new ArrayList<>();

//    /**
//     * 组织架构类型
//     *
//     * @return
//     */
//    public static List<DictModel> getOrgTypeList() {
//        if (ORG_TYPE_LIST_ITEMS.size() == 0) {
//            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_HEADOFFICE, "总公司"));
//            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_REGION, "大区"));
//            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_SUBSIDIARY, "子公司"));
//            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_INFORMATION, "信息公司"));
//            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_ELECTRICAL, "电器公司"));
//            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_SERVICE, "服务商"));
//            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_CROWDSOURCING, "众包公司"));
//        }
//        return ORG_TYPE_LIST_ITEMS;
//    }

    /**
     * 公司类型
     *
     * @return
     */
    public static List<DictModel> getOrgTypeList() {

        if (ORG_TYPE_LIST_ITEMS.size() == 0) {
            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_HEADOFFICE, "平台公司"));
            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_REGION, "大区"));
            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_SUBSIDIARY, "子公司"));
            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_SERVICE, "服务商"));
            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_ELECTRIC, "电器公司"));
            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_CHANNEL, "渠道"));
            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_CUSTOMERS, "企业客户"));
            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_MANUFACTURER, "厂商客户"));
            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_PAY, "支付平台"));
            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_SUPPLIER, "供应商"));
//            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_SUPPLIER_DEVICE, "整机供应商"));
//            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_SUPPLIER_DISTRIBUTION, "配送供应商"));
            ORG_TYPE_LIST_ITEMS.add(new DictModel(CompanyConsts.COMPANY_TYPE_TAX, "税务公司"));


        }

        return ORG_TYPE_LIST_ITEMS;
    }

    /**
     * 公司类型-子类型
     *
     * @return
     */
    public static List<DictModel> listOrgTypeByParent(Integer parentType) {

        List<DictModel> typeList = new ArrayList<>();

        // 只有平台公司和服务商存在子类型
        if (Objects.equals(parentType, CompanyConsts.COMPANY_TYPE_HEADOFFICE)) {
            typeList.add(new DictModel(CompanyConsts.COMPANY_TYPE_HEADOFFICE_SERVICE, "服务平台"));
            typeList.add(new DictModel(CompanyConsts.COMPANY_TYPE_HEADOFFICE_SCM, "供应链平台"));
            typeList.add(new DictModel(CompanyConsts.COMPANY_TYPE_HEADOFFICE_TCO, "科技平台"));
        } else if (Objects.equals(parentType, CompanyConsts.COMPANY_TYPE_SERVICE)) {
            typeList.add(new DictModel(CompanyConsts.COMPANY_TYPE_SERVICE_OCO, "直营"));
            typeList.add(new DictModel(CompanyConsts.COMPANY_TYPE_SERVICE_NOT_OCO, "非直营"));
//            typeList.add(new DictModel(CompanyConsts.COMPANY_TYPE_SERVICE_THIRD, "第三方"));
        }else if (Objects.equals(parentType, CompanyConsts.COMPANY_TYPE_SUPPLIER)) {
            typeList.add(new DictModel(CompanyConsts.COMPANY_TYPE_SUPPLIER_GOOGS, "供货商"));
            typeList.add(new DictModel(CompanyConsts.COMPANY_TYPE_SUPPLIER_INSURANCE, "保险公司"));
            typeList.add(new DictModel(CompanyConsts.COMPANY_TYPE_SUPPLIER_THREE_TICKET, "第三方开票机构"));
            typeList.add(new DictModel(CompanyConsts.COMPANY_TYPE_SUPPLIER_THREE_PAY, "第三方支付公司"));
            typeList.add(new DictModel(CompanyConsts.COMPANY_TYPE_SUPPLIER_LOGISTICS, "物流公司"));
        }

        return typeList;
    }

//    private static final List<DictModel> COMPANY_TYPE_ITEMS = new ArrayList<>();
//    public static List<DictModel> getAddCompanyType() {
//        if (COMPANY_TYPE_ITEMS.size() == 0) {
//            COMPANY_TYPE_ITEMS.add(new DictModel(100, "总公司"));
//            COMPANY_TYPE_ITEMS.add(new DictModel(101, "大区"));
//            COMPANY_TYPE_ITEMS.add(new DictModel(5, "子公司"));
//            COMPANY_TYPE_ITEMS.add(new DictModel(7, "信息公司"));
//            COMPANY_TYPE_ITEMS.add(new DictModel(8, "电器公司"));
//            COMPANY_TYPE_ITEMS.add(new DictModel(3, "供应商"));
//            COMPANY_TYPE_ITEMS.add(new DictModel(4, "大客户"));
//            COMPANY_TYPE_ITEMS.add(new DictModel(6, "渠道"));
//
//        }
//        return COMPANY_TYPE_ITEMS;
//    }

//    public static List<DictModel> listCompanyType() {
//        List<DictModel> companyTypeItem = Lists.newArrayListWithExpectedSize(10);
//        companyTypeItem.add(new DictModel(100, "总公司"));
//        companyTypeItem.add(new DictModel(101, "大区"));
//        companyTypeItem.add(new DictModel(5, "子公司"));
//        companyTypeItem.add(new DictModel(7, "信息公司"));
//        companyTypeItem.add(new DictModel(8, "电器公司"));
//        companyTypeItem.add(new DictModel(1, "服务商"));
//        companyTypeItem.add(new DictModel(2, "厂家"));
//        companyTypeItem.add(new DictModel(3, "供应商"));
//        companyTypeItem.add(new DictModel(4, "大客户"));
//        companyTypeItem.add(new DictModel(6, "渠道"));
//        return companyTypeItem;
//    }
}
